package com.huawei.esdk.uc.jna.struct;

import java.util.ArrayList;
import java.util.List;

import com.huawei.esdk.uc.jna.Constants;
import com.sun.jna.Structure;

public class STContact extends Structure
{

    public byte[] id = new byte[Constants.STRING_LENGTH];// !< id

    public byte[] uri = new byte[Constants.STRING_LENGTH]; // !< sip uri

    public byte[] fullUri = new byte[Constants.STRING_LENGTH]; // !< sip full
                                                               // uri

    public byte[] ucAcc = new byte[Constants.STRING_LENGTH]; // !< account

    public byte[] staffNo = new byte[Constants.STRING_LENGTH]; // !< staff no

    public byte[] name = new byte[Constants.STRING_LENGTH]; // !< name

    public byte[] nickName = new byte[Constants.STRING_LENGTH];// !< nick name

    public byte[] qpinyin = new byte[Constants.STRING_LENGTH];// !< name
                                                              // fullpinyin

    public byte[] spinyin = new byte[Constants.STRING_LENGTH];// !< name
                                                              // simplepinyin

    public byte[] homePhone = new byte[Constants.STRING_LENGTH];// !< home phone

    public byte[] officePhone = new byte[Constants.STRING_LENGTH];// !< office
                                                                  // phone

    public byte[] officePhone2 = new byte[Constants.STRING_LENGTH];// !< office
                                                                   // phone2

    public byte[] mobile = new byte[Constants.STRING_LENGTH];// !< mobile phone

    public byte[] otherPhone = new byte[Constants.STRING_LENGTH];// !< other
                                                                 // phone

    public byte[] otherPhone2 = new byte[Constants.STRING_LENGTH];// !< other
                                                                  // phone2

    public byte[] address = new byte[Constants.STRING_LENGTH];// !< address

    public byte[] email = new byte[Constants.STRING_LENGTH];// !< email

    public byte[] duty = new byte[Constants.STRING_LENGTH];// !< duty

    public byte[] fax = new byte[Constants.STRING_LENGTH];// !< fax

    public byte[] gender = new byte[Constants.STRING_LENGTH];// !< gender

    public byte[] corpName = new byte[Constants.STRING_LENGTH];// !< enterprise
                                                               // name

    public byte[] deptName = new byte[Constants.STRING_LENGTH];// !< dept name

    public byte[] webSite = new byte[Constants.STRING_LENGTH];// !< web site

    public byte[] desc = new byte[Constants.STRING_LENGTH];// !< description

    public byte[] zip = new byte[Constants.STRING_LENGTH];// !< zip

    public byte[] signature = new byte[Constants.STRING_LENGTH]; // !< signature

    public byte[] imageID = new byte[Constants.STRING_LENGTH];// !< head image
                                                              // id

    public byte[] position = new byte[Constants.STRING_LENGTH];// !<

    public byte[] location = new byte[Constants.STRING_LENGTH];// !<

    public byte[] tzone = new byte[Constants.STRING_LENGTH];// !< contact time
                                                            // zone

    public byte[] avtool = new byte[Constants.STRING_LENGTH];// !< avaliable
                                                             // device
                                                             // (mic/speaker/camera)

    public byte[] device = new byte[Constants.STRING_LENGTH];// !< contact
                                                             // device type

    public byte[] terminalType = new byte[Constants.STRING_LENGTH];// !< contact
                                                                   // type

    public byte[] ipphone1 = new byte[Constants.STRING_LENGTH];// !< bind
                                                               // ipphone1
                                                               // number

    public byte[] ipphone2 = new byte[Constants.STRING_LENGTH];// !< bind
                                                               // ipphone2
                                                               // number

    public int flow;// !< mark contact status in the group(just used for
                    // fixedgroup)

    @Override
    protected List<String> getFieldOrder()
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add("id");
        list.add("uri");
        list.add("fullUri");
        list.add("ucAcc");
        list.add("staffNo");
        list.add("name");
        list.add("nickName");
        list.add("qpinyin");
        list.add("spinyin");
        list.add("homePhone");
        list.add("officePhone");
        list.add("officePhone2");
        list.add("mobile");
        list.add("otherPhone");
        list.add("otherPhone2");
        list.add("address");
        list.add("email");
        list.add("duty");
        list.add("fax");
        list.add("gender");
        list.add("corpName");
        list.add("deptName");
        list.add("webSite");
        list.add("desc");
        list.add("zip");
        list.add("signature");
        list.add("imageID");
        list.add("position");
        list.add("location");
        list.add("tzone");
        list.add("avtool");
        list.add("device");
        list.add("terminalType");
        list.add("ipphone1");
        list.add("ipphone2");
        list.add("flow");
        return list;
    }

}
